# CMake 最低版本号要求
cmake_minimum_required (VERSION 3.4.1)
#要显示执行构建过程中详细的信息(比如为了得到更详细的出错信息),等同于 make VERBOSE=1
set(CMAKE_VERBOSE_MAKEFILE on)
# 项目信息
project (Lesson4)
message("begin...........................")
#message( [STATUS|WARNING|AUTHOR_WARNING|FATAL_ERROR|SEND_ERROR] "message to display" ...)
message(WARNING "PROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR}") # PROJECT_SOURCE_DIR为包含PROJECT()的最近一个CMakeLists.txt文件所在的文件夹
message(WARNING "PROJECT_BINARY_DIR=${PROJECT_BINARY_DIR}") # PROJECT_SOURCE_DIR为包含PROJECT()的输出文件夹

# 设置版本信息
set (Demo_VERSION_MAJOR 1)
set (Demo_VERSION_MINOR 0)

# 加入一个配置头文件，用于处理 CMake 对源码的设置
# 这回使config.h在.cxx/cmake/debug/armeabi-v7a目录下生成。除非修改输出目录
#configure_file (
#        "${PROJECT_SOURCE_DIR}/config.h.in"
#        "${PROJECT_BINARY_DIR}/config.h"
#)
configure_file (
        "${PROJECT_SOURCE_DIR}/config.h.in"
        "${PROJECT_SOURCE_DIR}/config.h"
)

# 是否使用自己的 MathTools 库
option (USE_MYMATH
        "Use provided math implementation" ON)

# 是否加入 MathTools 库
if (USE_MYMATH)
    include_directories ("${PROJECT_SOURCE_DIR}/math")
    add_subdirectory (math)
    set (EXTRA_LIBS ${EXTRA_LIBS} MathTools)
endif (USE_MYMATH)

# 查找当前目录下的所有源文件
# 并将名称保存到 DIR_SRCS 变量
aux_source_directory(. DIR_SRCS)
#或者
#set(DIR_SRCS main.cpp a.cpp b.cpp)

# 指定生成目标
add_executable(Hello ${DIR_SRCS})
target_link_libraries (Hello  ${EXTRA_LIBS})